home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 24 / AMIGAplus Sonderheft 24 (2000)(Falke)(DE)[!].iso / PublicDomain / Anwendungen / MT-RechnungIII / Rexx / Import_MUIRechnung.rexx < prev    next >
OS/2 REXX Batch file  |  1998-11-27  |  25KB  |  882 lines

  1. /*
  2. ** Importieren der Daten von MUIRechnung in MT-RechnungIII
  3. ** $VER: Import_MUIRechnung.rexx V1.01 (27.11.98)
  4. */
  5.  
  6. PARSE ARG ARexxPort;
  7.  
  8. ADDRESS VALUE ARexxPort;
  9. OPTIONS RESULTS;
  10.  
  11. LF                    = '0a'x;                            /* Zeilenvorschub                */
  12. TAB                = '09'x;                            /* Tabulator                    */
  13.  
  14. RC = 0;
  15.  
  16. /* Oberfläche sperren */
  17. LOCKGUI;
  18.  
  19. /* Prüfen, ob nicht bereits Daten vorhanden sind (darf nicht sein) */
  20. NUMBER_ADDRESS;
  21. AnzahlAdressen    = MTR_RESULT;
  22. NUMBER_ARTICLE;
  23. AnzahlArtikel    = MTR_RESULT;
  24. NUMBER_OUTBILL;
  25. AnzahlRechnung    = MTR_RESULT;
  26.  
  27. AnzahlKunden    = 0;
  28.  
  29. /* Einstellungen lesen */
  30. GET_PREFS;
  31.  
  32. IF (AnzahlAdressen + AnzahlArtikel + AnzahlRechnung) > 0 THEN
  33.     DO;
  34.         ES_TITLE                = "Achtung!!!!";
  35.         ES_TEXTFORMAT        = "Die Daten können nur importiert werden," || LF || "wenn noch keine Eingaben erfolgten.";
  36.         ES_GADGETFORMAT    = "Abbrechen";
  37.         EASY_REQUEST;
  38.         RC = 1;
  39.     END;
  40.  
  41. /* Einstellungsdatei auswählen */
  42. IF RC = 0 THEN
  43.     DO;
  44.         ASLFR_TITLETEXT        = "Wählen Sie die Konfigurationsdatei";
  45.         ASLFR_INITIALDRAWER    = "ram:";
  46.         ASLFR_INITIALPATTERN    = "#?.dat";
  47.         ASLFR_INITIALFILE        = "Konfiguration.dat";
  48.         ASL_FILE_REQUEST;
  49.         IF MTR_RESULT = "" THEN
  50.             RC = 1;
  51.         ELSE
  52.             DO;
  53.                 PrefsDatei = MTR_RESULT;
  54.                 j = 0;
  55.                 i = INDEX( PrefsDatei, "/");
  56.                 DO WHILE( i > 0 );
  57.                     j = i;
  58.                     i = INDEX( PrefsDatei, "/", i+1);
  59.                 END;
  60.  
  61.                 IF J = 0 THEN
  62.                     J = INDEX( PrefsDatei, ":" );
  63.  
  64.                 Vorgabeverzeichnis = SUBSTR( PrefsDatei, 1, J );
  65.             END;
  66.     END;
  67.  
  68. /* Artikeldatei auswählen */
  69. IF RC = 0 THEN
  70.     DO;
  71.         ASLFR_TITLETEXT        = "Wählen Sie die Artikeldatei";
  72.         ASLFR_INITIALDRAWER    = Vorgabeverzeichnis;
  73.         ASLFR_INITIALPATTERN    = "#?.dat";
  74.         ASLFR_INITIALFILE        = "Artikelliste.dat";
  75.         ASL_FILE_REQUEST;
  76.         IF MTR_RESULT = "" THEN
  77.             RC = 1;
  78.         ELSE
  79.             DO;
  80.                 ArtikelDatei = MTR_RESULT;
  81.             END;
  82.     END;
  83.  
  84. /* Kundendatei auswählen */
  85. IF RC = 0 THEN
  86.     DO;
  87.         ASLFR_TITLETEXT        = "Wählen Sie die Kundendatei";
  88.         ASLFR_INITIALDRAWER    = Vorgabeverzeichnis;
  89.         ASLFR_INITIALPATTERN    = "#?.dat";
  90.         ASLFR_INITIALFILE        = "Kundenliste.dat";
  91.         ASL_FILE_REQUEST;
  92.         IF MTR_RESULT = "" THEN
  93.             RC = 1;
  94.         ELSE
  95.             DO;
  96.                 KundenDatei = MTR_RESULT;
  97.             END;
  98.     END;
  99.  
  100. /* Noch kein Fehler Aufgetreten? */
  101. IF RC = 0 THEN
  102.     DO;
  103.         /* Länder einlesen */
  104.         NUMBER_COUNTRY;
  105.         AnzLaender = MTR_RESULT;
  106.         DO i = 1 to AnzLaender;
  107.             GET_COUNTRY i;
  108.             LandesName.i = COUNTRY.NAME;
  109.         END;
  110.  
  111.         IF OPEN(P_dat,PrefsDatei,'read') THEN
  112.             DO;
  113.                 MUI_Firma                = READLN(P_dat);
  114.                 MUI_Inhaber                = READLN(P_dat);
  115.                 MUI_Strasse                = READLN(P_dat);
  116.                 MUI_PLZOrt                = READLN(P_dat);
  117.                 MUI_Zeichen                = READLN(P_dat);
  118.                 MUI_Bankname            = READLN(P_dat);
  119.                 MUI_BLZ                    = READLN(P_dat);
  120.                 MUI_Kontonummer        = READLN(P_dat);
  121.                 MUI_TelVorwahl            = READLN(P_dat);
  122.                 MUI_Tel                    = READLN(P_dat);
  123.                 MUI_FaxVorwahl            = READLN(P_dat);
  124.                 MUI_Fax                    = READLN(P_dat);
  125.                 PREFS.VALUEPERCENT.0    = READLN(P_dat);
  126.                 PREFS.VALUEPERCENT.1    = READLN(P_dat);
  127.                 CLOSE(P_dat);
  128.             END;
  129.         ELSE
  130.             DO;
  131.                 ES_TITLE                = "Fehler!!!!";
  132.                 ES_TEXTFORMAT        = "Konnte die Konfigurationsdatei nicht öffnen :-(";
  133.                 ES_GADGETFORMAT    = "Abbrechen";
  134.                 EASY_REQUEST;
  135.                 FREEGUI;
  136.                 EXIT;
  137.             END;
  138.         PREFS.CURRENCY_USED            = 1;
  139.         SET_PREFS;
  140.  
  141.         IF MUI_Inhaber > "" THEN
  142.             DO;
  143.                 i = INDEX(MUI_Inhaber, " ");
  144.                 IF i = 0 THEN
  145.                     DO;
  146.                         MUI_Vorname        = "";
  147.                         MUI_Nachname    = MUI_Inhaber;
  148.                     END;
  149.                 ELSE
  150.                     DO;
  151.                         DO WHILE( i > 0 )
  152.                             j = i;
  153.                             i = INDEX( MUI_Adresse2, " ", (j+1) );
  154.                         END;
  155.                         MUI_Vorname        = LEFT(MUI_Inhaber, (j - 1));
  156.                         MUI_Nachname    = SUBSTR(MUI_Inhaber, (j + 1));
  157.                     END;
  158.             END;
  159.         ELSE
  160.             DO;
  161.                 MUI_Vorname        = "";
  162.                 MUI_Nachname    = "";
  163.             END;
  164.  
  165.         IF MUI_PLZOrt > "" THEN
  166.             DO;
  167.                 i = INDEX(MUI_PLZOrt, " ");
  168.                 IF i = 0 THEN
  169.                     DO;
  170.                         MUI_PLZ    = LEFT(MUI_PLZOrt, 5);
  171.                         MUI_Ort    = SUBSTR(MUI_PLZOrt, 6);
  172.                     END;
  173.                 ELSE
  174.                     DO;
  175.                         MUI_PLZ    = LEFT(MUI_PLZOrt, (i - 1));
  176.                         MUI_Ort    = SUBSTR(MUI_PLZOrt, (i + 1));
  177.                     END;
  178.             END;
  179.         ELSE
  180.             DO;
  181.                 MUI_PLZ            = "";
  182.                 MUI_Ort            = "";
  183.             END;
  184.  
  185.         IF AnzLaender = 0 THEN
  186.             CALL UP_NeuesLand("","");
  187.  
  188.         NEW_ADDRESS;
  189.         Adressnummer            = MTR_RESULT;
  190.  
  191.         ADDRESS.COMPANY1        = MUI_Firma;
  192.         ADDRESS.SURNAME        = MUI_Nachname;
  193.         ADDRESS.PRENAME        = MUI_Vorname;
  194.         ADDRESS.STREET            = MUI_Strasse;
  195.         ADDRESS.ZIP                = MUI_PLZ;
  196.         ADDRESS.CITY            = MUI_Ort;
  197.  
  198.         ADDRESS.PHONE            = COMPRESS(MUI_TelVorwahl) || "/" || COMPRESS(MUI_Tel);
  199.         ADDRESS.FAX                = COMPRESS(MUI_FaxVorwahl) || "/" || COMPRESS(MUI_Fax);
  200.  
  201.         ADDRESS.BANK_CODE_NUMBER    = COMPRESS(MUI_BLZ);
  202.         ADDRESS.BANK_NAME        = MUI_Bankname;
  203.         ADDRESS.ACCOUNT        = COMPRESS(MUI_Kontonummer);
  204.  
  205.         SET_ADDRESS Adressnummer;
  206.  
  207.         ADD_BRANCHOFFICE Adressnummer;
  208.         ADD_EMPLOYEE Adressnummer;
  209.  
  210.  
  211.         /* Artikel einlesen */
  212.         IF OPEN(A_dat,ArtikelDatei,'read') THEN
  213.             DO;
  214.                 DO forever;
  215.                     MUI_ArtBez        = READLN(A_dat);
  216.                     IF EOF(A_dat) THEN LEAVE;
  217.                     MUI_ArtPreis    = COMPRESS(TRANSLATE(READLN(A_dat), ' .', '.,'));
  218.                     MUI_ArtEKPreis    = COMPRESS(TRANSLATE(READLN(A_dat), ' .', '.,'));
  219.                     MUI_ArtEKVers    = COMPRESS(TRANSLATE(READLN(A_dat), ' .', '.,'));
  220.                     MUI_ArtVGLBetr    = COMPRESS(TRANSLATE(READLN(A_dat), ' .', '.,'));
  221.                     MUI_ArtNummer    = READLN(A_dat);
  222.                     MUI_Preistab    = READLN(A_dat);
  223.                     MUI_Packung        = COMPRESS(TRANSLATE(READLN(A_dat), ' .', '.,'));
  224.                     MUI_Datum        = READLN(A_dat);
  225.                     MUI_Lieferant    = READLN(A_dat);
  226.                     MUI_Kategorie    = READLN(A_dat);
  227.                     MUI_Notiz        = READLN(A_dat);
  228.                     MUI_Leer            = READLN(A_dat);
  229.  
  230.                     CALL UP_NeuerArtikel;
  231.                 END;
  232.                 CLOSE(A_dat);
  233.             END;
  234.         MUI_Packung    = 0;
  235.  
  236.         /* Adressen einlesen */
  237.         IF OPEN(K_dat,KundenDatei,'read') THEN
  238.             DO;
  239.                 DO forever;
  240.                     MUI_AnredePlus    = READLN(K_dat);
  241.                     IF EOF(K_dat) THEN LEAVE;
  242.                     MUI_Adresse2        = READLN(K_dat);
  243.                     MUI_Adresse3        = READLN(K_dat);
  244.                     MUI_Adresse4        = READLN(K_dat);
  245.                     MUI_Adresse5        = READLN(K_dat);
  246.                     MUI_KundenNrPlus    = READLN(K_dat);
  247.                     MUI_Zeichen            = READLN(K_dat);
  248.                     MUI_FonPlus            = READLN(K_dat);
  249.  
  250.                     CALL UP_NeuerKunde;
  251.  
  252.                 END;
  253.                 CLOSE(K_dat);
  254.             END;
  255.         MUI_FonPlus = "";
  256.  
  257.         /* Versandarten erzeugen */
  258.         NEW_DISPATCH;
  259.         VersandNummer = MTR_RESULT;
  260.         DELIVERY.DESCRIPTION.0    = "Barzahlung";
  261.         DELIVERY.DESCRIPTION.1    = "Batrag dankend erhalten";
  262.         SET_DISPATCH VersandNummer;
  263.  
  264.         NEW_DISPATCH;
  265.         VersandNummer = MTR_RESULT;
  266.         DELIVERY.DESCRIPTION.0    = "Banküberweisung";
  267.         DELIVERY.DESCRIPTION.1    = "Bitte überweisen Sie den Betrag";
  268.         SET_DISPATCH VersandNummer;
  269.  
  270.         NEW_DISPATCH;
  271.         VersandNummer = MTR_RESULT;
  272.         DELIVERY.DESCRIPTION.0    = "Nachnahme";
  273.         DELIVERY.DESCRIPTION.1    = "Batrag dankend erhalten";
  274.         DELIVERY.VALUE_ADDITIONAL_USED    = 9;
  275.         DELIVERY.DISCOUNT_ALLOWANCE        = 0;
  276.         DELIVERY.CURRENCY_USED                = 0;
  277.         DELIVERY.ADDITIONAL_COSTS.0.0        = 3;
  278.         SET_DISPATCH VersandNummer;
  279.  
  280.         NEW_DISPATCH;
  281.         VersandNummer = MTR_RESULT;
  282.         DELIVERY.DESCRIPTION.0    = "Lieferschein";
  283.         SET_DISPATCH VersandNummer;
  284.  
  285.         /* Aufträge und Bestellungen einlesen */
  286.         JahrBis    = LEFT(DATE(s), 4);
  287.         DO JahrVerarb = 1993 TO JahrBis;
  288.             EOF_AL                = 'N';
  289.             EOF_RL                = 'N';
  290.             AuftragsLDatei        = Vorgabeverzeichnis || "Aufträge" || JahrVerarb || "/AuftragsListe";
  291.             RechnungsLDatei    = Vorgabeverzeichnis || "Rechnungen" || JahrVerarb || "/RechnungsListe";
  292.             IF OPEN(AufL_dat, AuftragsLDatei,'read') THEN
  293.                 CALL UP_AufListeLesen;
  294.             ELSE
  295.                 DO;
  296.                     EOF_AL            = 'J';
  297.                     MUI_AL_ADatum    = 99999999;
  298.                     MUI_AL_RDatum    = 99999999;
  299.                 END;
  300.             IF OPEN(ReL_dat, RechnungsLDatei,'read') THEN
  301.                 CALL UP_ReListeLesen;
  302.             ELSE
  303.                 DO;
  304.                     EOF_RL = 'J';
  305.                     MUI_RL_RDatum        = 99999999;
  306.                     MUI_RL_ADatum        = 99999999;
  307.                     MUI_RL_BDatum        = 99999999;
  308.                 END;
  309.  
  310.             DO WHILE( (EOF_AL = 'N') | (EOF_RL = 'N') );
  311.                 IF MUI_AL_ADatum <= MUI_RL_RDatum THEN
  312.                     CALL UP_Auftrag_Verarb;
  313.                 IF MUI_AL_ADatum >= MUI_RL_RDatum THEN
  314.                     CALL UP_Rechnung_Verarb;
  315.             END;
  316.             CLOSE(AufL_dat);
  317.             CLOSE(ReL_dat);
  318.         END;
  319.  
  320.         ES_TITLE                = "Achtung!!!!";
  321.         ES_TEXTFORMAT        = "Der Datenimport ist abgeschlossen," || LF || "die Zugangsdaten lauten:" || LF || LF;
  322.         ES_TEXTFORMAT        = ES_TEXTFORMAT || "User:     '" || EMPLOYEE.ADDRESS.SURNAME || "'" || LF;
  323.         ES_TEXTFORMAT        = ES_TEXTFORMAT || "Passwort: '" || EMPLOYEE.ADDRESS.SURNAME || "'" || LF;
  324.         ES_GADGETFORMAT    = "Ok";
  325.         EASY_REQUEST;
  326.     END;
  327.  
  328. /* Oberfläche freigeben */
  329. FREEGUI;
  330.  
  331. EXIT;
  332.  
  333. /* Auftragsliste einlese